const mongoose = require('mongoose');

const applicationSchema = new mongoose.Schema({
  user_id: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'User',
    required: [true, '用户ID不能为空']
  },
  // 新增：关联目标站点ID（当申请类型为加入站点时必填）
  station_id: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'User',
    required: function() { return this.application_type === 'station_membership'; }
  },
  // 新增：申请类型（区分权限升级和加入站点）
  application_type: {
    type: String,
    required: true,
    enum: ['role_upgrade', 'station_membership'] // 权限升级/加入站点
  },
  // 原字段：申请角色（仅当类型为role_upgrade时有效）
  applied_role: {
    type: Number,
    enum: {
      values: [1, 2, 3],
      message: '申请权限必须为 1（客服）、2（站点）、3（维修员）',
      // 仅当类型为role_upgrade时校验
      required: function() { return this.application_type === 'role_upgrade'; }
    }
  },
  // 可选：申请备注
  remark: String,
  status: {
    type: String,
    default: '待审核',
    enum: ['待审核', '已通过', '已拒绝']
  }
}, { timestamps: true });

module.exports = mongoose.model('Application', applicationSchema);